package com.mall.b2c.service;


import com.mall.b2c.domain.goods.GoodsDomain;
import com.mall.common.bean.Pager;
import net.sf.json.JSONArray;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;

/**
 * Lucene-Service类
 * @author wangzx
 *
 */
public interface LuceneService {

	/**
	 * 建立商品索引
	 * @param beginDate
	 * @param endDate
	 * @param goodsCategoryId
	 * @return
	 */
	Future<Integer> indexGoods(Date beginDate, Date endDate, Long goodsCategoryId);

	/**
	 *异步更新商品索引
	 * @param ids 商品ids
	 */
	void updateIndexGoods(Long[] ids);


	/**
	 * 搜索提示
	* @param keyword
	* @return
	 */
	List<GoodsDomain> simpleSearch(String keyword, Integer count);

	/**
	 * 搜索提示
	 * @param keywords
	 * @return
	 */
	JSONArray searchTip(List<String> keywords, Integer count);

	/**
	 * 根据关键字Lucene搜索商品
	 * @param pager
	 * @param keywords
	 * @param filterMap
	 * @param  orderby
	 * @return
	 */
	Map<String, Object> searchIndex(Pager pager, String keywords, Map<String, String> filterMap, String orderby);
}
